package cn.fl.capital.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.capital.dto.CapPrjArInfoDTO;
import cn.fl.capital.vo.CapPrjArInfoVO;

import java.util.ArrayList;
import java.util.List;


/**
* @Description: 信审项目剩余敞口信息 转换器
* @Description: VO是客户端传递数据到服务端进行转换的数据
* @Description: VO转换数据变成DTO传递到服务端
* @Description: VO不能在服务端出现
*/
public class CapPrjArInfoVOTransform {


   /**
    * DTO 转  VO
    * @param po CapPrjArInfoDTO
    * @return CapPrjArInfoVO
    */
   public static CapPrjArInfoVO toVO(CapPrjArInfoDTO dto) {
       CapPrjArInfoVO  vo = null;
       if (dto != null) {
           vo = new CapPrjArInfoVO();
           vo.setId(dto.getId());
           vo.setPrjId(dto.getPrjId());//项目ID
           vo.setMainId(dto.getMainId());//主体ID(承租人/担保人/挂靠公司/供应商ID)
           vo.setMainNm(dto.getMainNm());//主体名称(承租人/担保人/挂靠公司/供应商名称)
           vo.setMainTypCd(dto.getMainTypCd());//主体类型(CAP0053)：1.承租人 2.担保人 3.挂靠公司 4.供应商
           vo.setFlNewOvdHisCnt(dto.getFlNewOvdHisCnt());//融资新车-历史30+逾期次数
           vo.setFlNewOvdCnt(dto.getFlNewOvdCnt());//融资新车-当前逾期支付表数
           vo.setFlNewPrjAudAmt(dto.getFlNewPrjAudAmt());//融资新车-已发起项目评审未通过的支付表敞口
           vo.setFlNewPayAmt(dto.getFlNewPayAmt());//融资新车-未放款支付表敞口
           vo.setFlNewPaidAmt(dto.getFlNewPaidAmt());//融资新车-已放款支付表敞口
           vo.setFlUsedOvdHisCnt(dto.getFlUsedOvdHisCnt());//融资二手车-历史30+逾期次数
           vo.setFlUsedOvdCnt(dto.getFlUsedOvdCnt());//融资二手车-当前逾期支付表数
           vo.setFlUsedPrjAudAmt(dto.getFlUsedPrjAudAmt());//融资二手车-已发起项目评审未通过的支付表敞口
           vo.setFlUsedPayAmt(dto.getFlUsedPayAmt());//融资二手车-未放款支付表敞口
           vo.setFlUsedPaidAmt(dto.getFlUsedPaidAmt());//融资二手车-已放款支付表敞口
           vo.setGtNewOvdHisCnt(dto.getGtNewOvdHisCnt());//担保新车-历史30+逾期次数
           vo.setGtNewOvdCnt(dto.getGtNewOvdCnt());//担保新车-当前逾期支付表数
           vo.setGtNewPrjAudAmt(dto.getGtNewPrjAudAmt());//担保新车-已发起项目评审未通过的支付表敞口
           vo.setGtNewPayAmt(dto.getGtNewPayAmt());//担保新车-未放款支付表敞口
           vo.setGtNewPaidAmt(dto.getGtNewPaidAmt());//担保新车-已放款支付表敞口
           vo.setGtUsedOvdHisCnt(dto.getGtUsedOvdHisCnt());//担保二手车-历史30+逾期次数
           vo.setGtUsedOvdCnt(dto.getGtUsedOvdCnt());//担保二手车-当前逾期支付表数
           vo.setGtUsedPrjAudAmt(dto.getGtUsedPrjAudAmt());//担保二手车-已发起项目评审未通过的支付表敞口
           vo.setGtUsedPayAmt(dto.getGtUsedPayAmt());//担保二手车-未放款支付表敞口
           vo.setGtUsedPaidAmt(dto.getGtUsedPaidAmt());//担保二手车-已放款支付表敞口
           vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

           vo.setCrtTm(dto.getCrtTm());//创建时间
           vo.setCrtUsrId(dto.getCrtUsrId());//创建人
           vo.setMdfTm(dto.getMdfTm());//修改时间
           vo.setMdfUsrId(dto.getMdfUsrId());//修改人
       }
       return vo;
   }

    /**
     * mongo数据转换（MongoDB返回的CapPriArInfoDTO fl-interface中的CapPrjArInfoVO）
     * @param po CapPrjArInfoDTO
     * @return CapPrjArInfoVO
     */
    public static CapPrjArInfoVO mongoDtotoVO(fl.mongo.facade.capital.dto.CapPriArInfoDTO dto) {
        CapPrjArInfoVO  vo = null;
        if (dto != null) {
            vo = new CapPrjArInfoVO();
            vo.setId(dto.getId());
            vo.setPrjId(dto.getPrjId());//项目ID
            vo.setMainId(dto.getMainId());//主体ID(承租人/担保人/挂靠公司/供应商ID)
            vo.setMainNm(dto.getMainNm());//主体名称(承租人/担保人/挂靠公司/供应商名称)
            vo.setMainTypCd(dto.getMainTypCd());//主体类型(CAP0053)：1.承租人 2.担保人 3.挂靠公司 4.供应商
            vo.setFlNewOvdHisCnt(dto.getFlNewOvdHisCnt());//融资新车-历史30+逾期次数
            vo.setFlNewOvdCnt(dto.getFlNewOvdCnt());//融资新车-当前逾期支付表数
            vo.setFlNewPrjAudAmt(dto.getFlNewPrjAudAmt());//融资新车-已发起项目评审未通过的支付表敞口
            vo.setFlNewPayAmt(dto.getFlNewPayAmt());//融资新车-未放款支付表敞口
            vo.setFlNewPaidAmt(dto.getFlNewPaidAmt());//融资新车-已放款支付表敞口
            vo.setFlUsedOvdHisCnt(dto.getFlUsedOvdHisCnt());//融资二手车-历史30+逾期次数
            vo.setFlUsedOvdCnt(dto.getFlUsedOvdCnt());//融资二手车-当前逾期支付表数
            vo.setFlUsedPrjAudAmt(dto.getFlUsedPrjAudAmt());//融资二手车-已发起项目评审未通过的支付表敞口
            vo.setFlUsedPayAmt(dto.getFlUsedPayAmt());//融资二手车-未放款支付表敞口
            vo.setFlUsedPaidAmt(dto.getFlUsedPaidAmt());//融资二手车-已放款支付表敞口
            vo.setGtNewOvdHisCnt(dto.getGtNewOvdHisCnt());//担保新车-历史30+逾期次数
            vo.setGtNewOvdCnt(dto.getGtNewOvdCnt());//担保新车-当前逾期支付表数
            vo.setGtNewPrjAudAmt(dto.getGtNewPrjAudAmt());//担保新车-已发起项目评审未通过的支付表敞口
            vo.setGtNewPayAmt(dto.getGtNewPayAmt());//担保新车-未放款支付表敞口
            vo.setGtNewPaidAmt(dto.getGtNewPaidAmt());//担保新车-已放款支付表敞口
            vo.setGtUsedOvdHisCnt(dto.getGtUsedOvdHisCnt());//担保二手车-历史30+逾期次数
            vo.setGtUsedOvdCnt(dto.getGtUsedOvdCnt());//担保二手车-当前逾期支付表数
            vo.setGtUsedPrjAudAmt(dto.getGtUsedPrjAudAmt());//担保二手车-已发起项目评审未通过的支付表敞口
            vo.setGtUsedPayAmt(dto.getGtUsedPayAmt());//担保二手车-未放款支付表敞口
            vo.setGtUsedPaidAmt(dto.getGtUsedPaidAmt());//担保二手车-已放款支付表敞口
            vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

            vo.setCrtTm(dto.getCrtTm());//创建时间
//			 vo.setCrtUsrId(dto.getCrtUsrId());//创建人
//			 vo.setMdfTm(dto.getMdfTm());//修改时间
//			 vo.setMdfUsrId(dto.getMdfUsrId());//修改人
        }
        return vo;
    }

   /**
    * VO 转 DTO
    * @param dto CapPrjArInfoVO
    * @return CapPrjArInfoDTO
    */
   public static CapPrjArInfoDTO toDTO(CapPrjArInfoVO vo) {
       CapPrjArInfoDTO dto = null;
       if (vo != null) {
           dto = new CapPrjArInfoDTO();
           dto.setId(vo.getId());
           dto.setPrjId(vo.getPrjId());//项目ID
           dto.setMainId(vo.getMainId());//主体ID(承租人/担保人/挂靠公司/供应商ID)
           dto.setMainNm(vo.getMainNm());//主体名称(承租人/担保人/挂靠公司/供应商名称)
           dto.setMainTypCd(vo.getMainTypCd());//主体类型(CAP0053)：1.承租人 2.担保人 3.挂靠公司 4.供应商
           dto.setFlNewOvdHisCnt(vo.getFlNewOvdHisCnt());//融资新车-历史30+逾期次数
           dto.setFlNewOvdCnt(vo.getFlNewOvdCnt());//融资新车-当前逾期支付表数
           dto.setFlNewPrjAudAmt(vo.getFlNewPrjAudAmt());//融资新车-已发起项目评审未通过的支付表敞口
           dto.setFlNewPayAmt(vo.getFlNewPayAmt());//融资新车-未放款支付表敞口
           dto.setFlNewPaidAmt(vo.getFlNewPaidAmt());//融资新车-已放款支付表敞口
           dto.setFlUsedOvdHisCnt(vo.getFlUsedOvdHisCnt());//融资二手车-历史30+逾期次数
           dto.setFlUsedOvdCnt(vo.getFlUsedOvdCnt());//融资二手车-当前逾期支付表数
           dto.setFlUsedPrjAudAmt(vo.getFlUsedPrjAudAmt());//融资二手车-已发起项目评审未通过的支付表敞口
           dto.setFlUsedPayAmt(vo.getFlUsedPayAmt());//融资二手车-未放款支付表敞口
           dto.setFlUsedPaidAmt(vo.getFlUsedPaidAmt());//融资二手车-已放款支付表敞口
           dto.setGtNewOvdHisCnt(vo.getGtNewOvdHisCnt());//担保新车-历史30+逾期次数
           dto.setGtNewOvdCnt(vo.getGtNewOvdCnt());//担保新车-当前逾期支付表数
           dto.setGtNewPrjAudAmt(vo.getGtNewPrjAudAmt());//担保新车-已发起项目评审未通过的支付表敞口
           dto.setGtNewPayAmt(vo.getGtNewPayAmt());//担保新车-未放款支付表敞口
           dto.setGtNewPaidAmt(vo.getGtNewPaidAmt());//担保新车-已放款支付表敞口
           dto.setGtUsedOvdHisCnt(vo.getGtUsedOvdHisCnt());//担保二手车-历史30+逾期次数
           dto.setGtUsedOvdCnt(vo.getGtUsedOvdCnt());//担保二手车-当前逾期支付表数
           dto.setGtUsedPrjAudAmt(vo.getGtUsedPrjAudAmt());//担保二手车-已发起项目评审未通过的支付表敞口
           dto.setGtUsedPayAmt(vo.getGtUsedPayAmt());//担保二手车-未放款支付表敞口
           dto.setGtUsedPaidAmt(vo.getGtUsedPaidAmt());//担保二手车-已放款支付表敞口
           dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

           dto.setCrtTm(vo.getCrtTm());//创建时间
           dto.setCrtUsrId(vo.getCrtUsrId());//创建人
           dto.setMdfTm(vo.getMdfTm());//修改时间
           dto.setMdfUsrId(vo.getMdfUsrId());//修改人
       }
       return dto;
   }

    /**
     * DTO集合 转 VO集合（MongoDB数据源）
     * @param List<CapPrjArInfoDTO>
     * @return List<CapPrjArInfoVO>
     */
    public static List<CapPrjArInfoVO> mongoDtoVOList(List<fl.mongo.facade.capital.dto.CapPriArInfoDTO> list) {
        List<CapPrjArInfoVO>  voList = new ArrayList<CapPrjArInfoVO>();
        if(CollectionUtils.isNotEmpty(list)){
            for (fl.mongo.facade.capital.dto.CapPriArInfoDTO dto : list) {
                voList.add(mongoDtotoVO(dto));
            }
        }
        return voList;
    }

   /**
    * DTO集合 转 VO集合
    * @param List<CapPrjArInfoDTO>
    * @return List<CapPrjArInfoVO>
    */
   public static List<CapPrjArInfoVO> toVOList(List<CapPrjArInfoDTO> list) {
       List<CapPrjArInfoVO>  voList = new ArrayList<CapPrjArInfoVO>();
       if(CollectionUtils.isNotEmpty(list)){
           for (CapPrjArInfoDTO dto : list) {
               voList.add(toVO(dto));
           }
       }
       return voList;
   }

   /**
    * VO集合 转 DTO集合
    * @param list List<CapPrjArInfoVO>
    * @return List<CapPrjArInfoDTO>
    */
   public static List<CapPrjArInfoDTO> toDTOList(List<CapPrjArInfoVO> list) {
       List<CapPrjArInfoDTO>  dtoList = new ArrayList<CapPrjArInfoDTO>();
       if(CollectionUtils.isNotEmpty(list)){
           for (CapPrjArInfoVO vo : list) {
               dtoList.add(toDTO(vo));
           }
       }
       return dtoList;
   }
}
